package com.battery.system.service.battery;

import java.util.List;

import com.battery.system.domain.ProxyUser;
import com.battery.system.domain.VO.PartnerVO;
import com.battery.system.service.IBaseService;

/**
 * 账号Service接口
 *
 * @author battery
 * @date 2021-01-20
 */
public interface IProxyUserService extends IBaseService<ProxyUser> {
    /**
     * 查询账号
     *
     * @param id 账号ID
     * @return 账号
     */
    public ProxyUser selectProxyUserById(String id);

    /**
     * 查询账号列表
     *
     * @param proxyUser 账号
     * @return 账号集合
     */
    public List<ProxyUser> selectProxyUserList(ProxyUser proxyUser);

    /**
     * 新增账号
     *
     * @param proxyUser 账号
     * @return 结果
     */
    public int insertProxyUser(ProxyUser proxyUser);

    /**
     * 修改账号
     *
     * @param proxyUser 账号
     * @return 结果
     */
    public int updateProxyUser(ProxyUser proxyUser);

    /**
     * 批量删除账号
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteProxyUserByIds(String ids);

    /**
     * 删除账号信息
     *
     * @param id 账号ID
     * @return 结果
     */
    public int deleteProxyUserById(String id);


    ProxyUser selectByPhone(String phone, Integer type, String pwd);

    /**
     * 校验手机号是否重复
     *
     * @param phone       手机号
     * @param accountType 账号类型
     * @return
     */
    boolean checkPhoneExist(String phone, Integer accountType);

    /**
     * 校验主账号
     *
     * @param accountId
     * @param code
     * @return
     */
    boolean checkMainAccount(String accountId, Integer code);

    /**
     * 根据登陆账号，账号类型 查询对应的账号信息
     *
     * @param phone       登陆账号（手机号）
     * @param accountType 账号类型
     * @return
     */
    ProxyUser selectOneByAccount(String phone, Integer accountType);


    /**
     * 根据账号ID 以及账号类型获取对应的账号信息 (排除员工)
     * @param accountId
     * @param accountType
     * @return
     */
    ProxyUser selectByAccountId(String accountId, Integer accountType);
}
